import { app } from 'electron'
import { electronApp, optimizer } from '@electron-toolkit/utils'
import { setupAppLifecycle } from './modules/appLifecycle.js'
import { registerAllIpcHandlers } from './modules/ipcRegister.js'
import { createWindow } from './modules/windowManager.js'

// 当 Electron 完成初始化时触发
app.whenReady().then(async () => {
  // 1. 设置应用用户模型 ID (主要用于 Windows)
  electronApp.setAppUserModelId('com.electron')

  // 2. 设置窗口快捷键监听 (如 F12 开发者工具)
  app.on('browser-window-created', (_, window) => {
    optimizer.watchWindowShortcuts(window)
  })

  // 3. 注册所有 IPC 处理程序
  await registerAllIpcHandlers()

  // 4. 创建主浏览器窗口
  createWindow()

  // 5. 设置应用激活时的行为 (主要用于 macOS)
  setupAppLifecycle()
})

// 当所有窗口都关闭时触发
app.on('window-all-closed', () => {
  // 在 macOS 上，应用程序和它们的菜单栏通常会保持活动状态，
  // 直到用户明确退出（Cmd+Q）。
  if (process.platform !== 'darwin') {
    app.quit()
  }
})
